/* -*- Mode: c; tab-width: 4; c-basic-offset: 4; indent-tabs-mode: nil; -*- */
/*
  RefObject (http://code.google.com/p/refobject/)
  Copyright (C) 2010-2011 MIURA Shirow (sharow)
*/

#ifndef INCLUDED_REFVOIPTR_H
#define INCLUDED_REFVOIPTR_H

#include <RefObject/RefObject.h>


typedef void (*RefVoidPtrDestructor)(void *aVoidPtr);

RefTypeObject **RefVoidPtr_GetTypeObject(void);
RefObject *RefVoidPtr_Create(void *aVoidPtr, RefVoidPtrDestructor aDestructor);
RefObject *RefVoidPtr_CreateWithAllocator(void *aVoidPtr, RefVoidPtrDestructor aDestructor, RefObject *aRefAllocator);
int RefVoidPtr_IsValid(RefObject *aRefObject);
void *RefVoidPtr_AsVoidPtr(RefObject *aRefObject);


#endif
